Systems and methods for construction, maintenance, and improvement of knowledge representations

ABSTRACT

In one aspect, the present disclosure relates to a method which, in one example embodiment, can include reading text data corresponding to messages, creating semantic annotations to the text data to generate one or more annotated messages, and aggregating the annotated messages and storing information associated with the aggregated annotated messages in a message store. The method can further include performing, based on information from the message store and associated with the one or more messages, one or more global analytics functions that include: identifying an annotation error in the semantic annotations created using the trained statistical language model, updating the respective semantic annotation to correct the annotation error, and back-propagating corrected data corresponding to the updated semantic annotation into training data for further language model training.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation-in-part of, and claims benefit under35 U.S.C. §120 of, U.S. patent application Ser. No. 14/320,566 filedJun. 30, 2014, which itself claims priority to and benefit under 35U.S.C §119(e) of U.S. Provisional Patent Application Ser. No. 61/841,071filed Jun. 28, 2013, U.S. Provisional Patent Application Ser. No.61/841,054 filed Jun. 28, 2013, and U.S. Provisional Patent ApplicationSer. No. 62/017,937 filed Jun. 27, 2014. These above-mentioned U.S.Patent Applications are hereby incorporated by reference herein in theirentireties as if fully set forth below.

BACKGROUND

The growth of unstructured data can create a widening understanding gapwithin enterprises across all industries. Unstructured data may growmore rapidly than structured data, which can create additional issuesfor enterprises because unstructured data can be human-generated,pervasive, fluid, and imprecise. Some difficulties in deriving critical,actionable information from big data can be exemplified in recentfinancial scandals, where although indications of problematic behaviorwere within the archived human communications data of the financialindustry, surrounding mountains of innocuous communications preventedtimely action to address the growing risks. Similar difficulties can befaced by the intelligence community, where thousands of reports arereceived daily, but a limited ability to make meaningful connectionsbetween disparate sources of information may prevent timely responses toevolving situations. It is with respect to these and otherconsiderations that aspects of the present disclosure are presentedherein.

SUMMARY

In one aspect, the present disclosure relates to a computer-implementedmethod. In one embodiment, the method includes reading text data thatcorresponds to one or more messages and includes natural languagecontent and/or metadata. The method also includes creating one or moresemantic annotations to the text data to generate one or more annotatedmessages. Creating the one or more semantic annotations can includegenerating, at least in part by a trained statistical language model,one or more predictive labels corresponding to part-of-speech, syntacticrole, sentiment, and/or other language patterns associated with the textdata. The method further includes aggregating the one or more annotatedmessages and storing information associated with the aggregated one ormore annotated messages in a message store. The method further includesperforming, based on information from the message store and associatedwith the one or more messages, one or more global analytics functions.The global analytics functions include identifying an annotation errorin the semantic annotations created using the trained statisticallanguage model, updating the respective semantic annotation to correctthe annotation error, and back-propagating corrected data correspondingto the updated semantic annotation into training data for furtherlanguage model training.

In another aspect, the present disclosure relates to a system. In oneembodiment, the system includes one or more processors and a memory thatis operatively coupled to the one or processors. The memory storescomputer-executable instructions that, when executed by the one or moreprocessors, cause the system to perform functions that include readingtext data corresponding to one or more messages and creating one or moresemantic annotations to the text data to generate one or more annotatedmessages. Creating the one or more semantic annotations comprisesgenerating, at least in part by a trained statistical language model,one or more predictive labels corresponding to language patternsassociated with the text data. The stored instructions, when executed bythe one or more processors, causes the system to perform furtherfunctions that include aggregating the one or more annotated messagesand storing information associated with the aggregated one or moreannotated messages in a message store, and performing, based oninformation from the message store and associated with the one or moremessages, one or more global analytics functions. The global analyticsfunctions include identifying an annotation error in the semanticannotations created using the trained statistical language model,updating the respective semantic annotation to correct the annotationerror, and back-propagating corrected data corresponding to the updatedsemantic annotation into training data for further language modeltraining.

In another aspect, the present disclosure relates to a non-transitorycomputer-readable medium. In one embodiment, the computer-readablemedium stores instructions that, when executed by one or moreprocessors, cause a computer to perform functions that include readingtext data corresponding to one or more messages and creating one or moresemantic annotations to the text data to generate one or more annotatedmessages. Creating the one or more semantic annotations comprisesgenerating, at least in part by a trained statistical language model,one or more predictive labels corresponding to language patternsassociated with the text data. The stored instructions, when executed bythe one or more processors, causes the computer to perform furtherfunctions that include aggregating the one or more annotated messagesand storing information associated with the aggregated one or moreannotated messages in a message store, and performing, based oninformation from the message store and associated with the one or moremessages, one or more global analytics functions. The global analyticsfunctions include identifying an annotation error in the semanticannotations created using the trained statistical language model,updating the respective semantic annotation to correct the annotationerror, and back-propagating corrected data corresponding to the updatedsemantic annotation into training data for further language modeltraining.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale.

FIG. 1 is a diagram illustrating a system according to one exampleembodiment of the present disclosure.

FIG. 2 is a diagram illustrating aspects of accessing data and analysesin the Knowledge Graph according to one example embodiment of thepresent disclosure.

FIG. 3 illustrates information visually represented by a Knowledge Graphaccording to one example embodiment of the present disclosure.

FIG. 4 illustrates organization and generation of a Knowledge Graphaccording to one example embodiment of the present disclosure.

FIG. 5 is a diagram showing functional components and operation ofResonate reasoning in accordance with one or more example embodiments ofthe present disclosure.

FIG. 6 is a flow diagram illustrating operations of a method forperforming functions of Resonate reasoning in accordance with oneexample embodiment of the present disclosure.

FIG. 7 is another flow diagram illustrating operations of a method forperforming functions of Resonate reasoning in accordance with oneembodiment of the present disclosure.

FIG. 8 illustrates an exemplary system for machine learning capable ofimplementing one or more example embodiments of the present disclosure.

FIG. 9 is a computer architecture diagram illustrating an exemplarycomputer hardware architecture for a computing system capable ofimplementing one or more example embodiments of the present disclosure.

DETAILED DESCRIPTION

The following detailed description is directed to computing systems andmethods for performing functions that may include the construction,maintenance, and improvement of knowledge representations. Althoughexample embodiments of the present disclosure are explained in detail,it is to be understood that other embodiments are contemplated.Accordingly, it is not intended that the present disclosure be limitedin its scope to the details of construction and arrangement ofcomponents set forth in the following description or illustrated in thedrawings. The present disclosure is capable of other embodiments and ofbeing practiced or carried out in various ways.

It must also be noted that, as used in the specification and theappended claims, the singular forms “a,” “an” and “the” include pluralreferents unless the context clearly dictates otherwise. Moreover,titles or subtitles may be used in this specification for theconvenience of a reader, which shall have no influence on the scope ofthe present disclosure.

By “comprising” or “containing” or “including” is meant that at leastthe named compound, element, particle, or method step is present in thecomposition or article or method, but does not exclude the presence ofother compounds, materials, particles, method steps, even if the othersuch compounds, material, particles, method steps have the same functionas what is named.

In describing example embodiments, terminology will be resorted to forthe sake of clarity. It is intended that each term contemplates itsbroadest meaning as understood by those skilled in the art and includesall technical equivalents that operate in a similar manner to accomplisha similar purpose.

The following provides non-limiting definitions of some terms usedherein in describing certain aspects of the present disclosure, forconvenience of the reader.

As used herein, an “agent” may refer to an autonomous program moduleconfigured to perform specific tasks on behalf of a host and withoutrequiring the interaction of a user.

As used herein, an “aggregate” may refer to a collection defined byusers or algorithms of pointers and values, including sets of otherprimitives such as entities, concepts, relationships, etc.

As used herein, an “application” may refer to an assembly of reasoningAPIs, user experience, and business objectives and constraints.

As used herein, a “category” may refer to a labeled set (or aggregate)of concepts or relationships.

As used herein, a “concept” may consist of an aggregate of eitherentities, predicates, or modifiers.

As used herein, a “contextual feature” can be a feature that capturesthe context surrounding a mention. A contextual feature may compriseextractor tags and features at the word level in a sentence.

As used herein, “coreference resolution” or “entity resolution” mayrefer to a process of determining whether two expressions (or“mentions”) in natural language refer to the same entity.

As used herein, a “coreference chain” (or “coref chain”) may refer toone or more textual references to an entity.

As used herein, an “entity” may refer to a set or aggregate of mentionsthat constitute an unambiguous identity of a person, group, thing, oridea. An entity may be a group of coreferent “sub entities”, which mayalso be referred to as a “concept”.

As used herein, a “feature” may refer to a value derived fromexamination of the context of a concept, relationships, and messages. Afeature can be explicitly in the message or inferred through analytics.

As used herein, a “feature vector” may refer to an n-dimensional vectorof features, such as numerical features, that can represent an element(or mention). Some machine learning processes described herein mayutilize numerical representation of objects to facilitate processing andstatistical analysis.

As used herein, “local entity” may refer to a group of in-documentcoreferent mentions, which may also be referred to as a localcoreference chain.

As used herein, a “mention” may refer to a reference to a value in aposition in a message that has been processed. “Mention” as used hereinmay additionally or alternatively refer to a data object that representsa chunk, which can contain book-keeping info (token start, token end,etc.) and features that aid in resolution.

As used herein, a “message” may refer to an ordered collection ofvalues.

As used herein, a “modifier” may provide additional determination andspecification of the entity, predicate, or relationship. A modifier maybe necessarily bound in a relationship.

As used herein, a “non-contextual feature” may refer to features whichare constant for a given word regardless of the context. Non-contextualfeature vectors may comprise tokenizer output and features at thecharacter level for a given word.

As used herein, a “predicate” may refer to the type of action oractivity and reference to that activity independent of the subjects orobjects of that activity.

As used herein, “reasoning” may refer to the use or manipulation ofconcepts and relationships to answer end user questions. Reasoning maybe primitive (atomic) or complex (orchestrated to support a specificbusiness use case).

As used herein, a “relationship” may refer to an n-tuple of concepts orrelationships (i.e. relationships can be recursive). A relationship canhave a value as a label.

As used herein, “resolution” may refer to the determination of a set orall references to create concepts or relationships.

As used herein, “space” and “time” may refer to ranges that mayconstrain relationships. Inherently, space and time may be of limitedprecision and can be implemented with different basic units of measure.

As used herein, “structured data” may refer to attribute/value pairs andrelationships with pre-defined meaning.

As used herein, “sub entity” may refer to a group of coreferent “localentities”. A sub entity may also be the atomic unit of input foriterative global coreference processes as described in the presentdisclosure.

As used herein, “super entity” may refer a coarse-grained cluster.Person mentions can be part of a larger ‘person’ super entity. As afurther example, all mentions belonging to a ‘politics’ category can bepart of one big super entity. Super entities can be used for minimizinga search space.

In the following detailed description, references are made to theaccompanying drawings that form a part hereof and that show, by way ofillustration, specific embodiments or examples. In referring to thedrawings, like numerals represent like elements throughout the severalfigures.

Some fictitious names such as “Roger Guta”, “Raj Mojihan”, “GallotCompany”, “Proffett & Gambrel”, “William Schultz”, “Kinsor & Company”,“John Smith”, “Princetown University” that are used throughout thepresent disclosure are intended for illustration purposes only and arenot intended to refer to any specific real-world persons or entities.

Some instances of specific terms used herein may be partiallycapitalized (e.g., “Resonate”, “Knowledge Graph”). Such partialcapitalization is intended for the convenience of the reader and/or todistinguish the features, functions, or concepts a particular term mayrepresent in some specific embodiments of the present disclosure.Intentional mention of a specific proprietary or commercially-used namemay be signified herein by all capitalized characters (e.g.,JAVASCRIPT).

In some embodiments, the present disclosure can provide for implementinganalytics using both supervised and unsupervised machine learningtechniques. Supervised mathematical models can encode a variety ofdifferent data “features” and associated weight information, which canbe stored in a data file and used to reconstruct a model at run-time.The features utilized by these models may be determined by linguists anddevelopers, and may be fixed at model training time. Models can beretrained at any time, but retraining may be done more infrequently oncemodels reach certain levels of accuracy.

Such approaches can be used to capture linguistic phenomena by utilizingthe models to label sequences of characters/tokens/elements with thecorrect linguistic information that a model was created to predict.According to some embodiments of the present disclosure, a supervisedapproach can comprise two phases: a training phase to identify thosefeatures that are significant for determining the correct labelsequencing implemented by that model, and a run-time labeling phase thatemploys inference algorithms to assign attributes to the text beingprocessed.

Training can be performed by passing annotated data to amachine-learning training algorithm that creates an appropriate model.This data can be represented as vectors of features. Suchmachine-learning training algorithms can learn the weights of featuresand persist them in a model so that inference algorithms can use themodel to predict a correct label sequence to assign to the terms as theyare being processed.

The use of statistical models can provide for a degree of languageindependence because the same underlying algorithms can be used topredict correct labeling sequences; the process may slightly differ justin using a different set of models. For each language, a new model canbe created for each machine learning function, using the language toidentify significant features important to that model.

The present disclosure presented herein, in accordance with someembodiments, can provide for building a graph of global enterpriseknowledge from data, with integration of a set of knowledge services inthe form of a rich Application Programming Interface (API) to access a“Knowledge Graph” abstracted from the data (see, e.g., FIGS. 2-4). Thepresent disclosure in accordance with some embodiments can provide anentity-centric approach to data analytics, focused on uncovering theinteresting facts, concepts, events, and relationships defined in thedata rather than just filtering down and organizing a set of documentsthat may contain the information being sought by the user.

Now specifically referring to FIG. 1, according to some embodiments ofthe present disclosure, in order to assemble a rich Knowledge Graph fromboth unstructured data 108 and structured data 110, an analyticalworkflow can perform processes which may be generally described in termsof three main functional phases: “Read”, “Resolve”, and “Reason”, whereeach phase includes particular functional processes. In the Read phase(see, e.g., “Read” at block 106), unstructured data 108 (e.g., web,email, instant messaging, or social media data) and structured data 110(e.g., customer information, orders or trades, transactions, orreference data) can be ingested and natural language processing (NLP),entity extraction, and fact extraction can be performed. As non-limitingexamples, unstructured data 108 may be accepted in a UTF-8 text format,and structured data 120 may be accepted in a specified XML format, amongother commonly used data formats.

In the Resolve phase (see, e.g., “Resolve” at block 116), results fromthe Read phase can be assembled, organized, and related to performglobal concept resolution and detect synonyms (e.g., synonym generation)and closely related concepts. Some aspects of the Resolve phase relateto “Resonance” as described in further detail below, which, it should berecognized, is not equivalent to “Resonate” reasoning as describedherein. In the Reason phase, spatial and temporal reasoning may beapplied and relationships uncovered that can allow resolved entities tobe compared and correlated using various graph analysis techniques. TheReason phase can utilize “reasoners” of Global Analytics 112, wherefunctions of Resolve 116 may be considered a type of reasoner. Reasonerscan further include Resonate 114, Similarity 118, Associative Net 120,Inference 122, and Prediction 124. Various aspects of an analyticalworkflow that can utilize the Read, Resolve, and Reason phases may beperformed in a distributed processing environment, and the results canbe stored into a unified entity storage architecture which may bereferred to herein as a “Knowledge Base” 126.

As illustrated in FIG. 1, systems and methods according to someembodiments of the present disclosure can utilize “Local Analytics”processes 104. Local Analytics 104 can include processes in accordancewith the Read phase 106 and may refer to reading messages and enrichingthem with semantic annotations based on algorithms that utilize a priorimodels created from training and static background knowledge. Enrichmentin Local Analytics 104 may use structured prediction algorithms andclassification algorithms. These algorithms may be supervised orsemi-supervised and can presume training of an a priori model which isevaluated at runtime. Output of Local Analytics processes 104 caninclude a message with the annotations populated from the analytics,which may be aggregated into an annotated message store of the KnowledgeBase 126.

In conventional approaches, a problem encountered when creating andmanaging entity-centric information for large corpora of unstructureddata is that many existing database architectures do not scale due tothe large volume of entities generated and the multiple relationshipsthat can exist between entities. To address such deficiencies, thepresent disclosure, in some embodiments, can provide the Knowledge Base126 as a unified entity storage architecture that can perform at scalefor both data insertion as well as data querying. In some embodiments,the Knowledge Base 126 can be a combination of persistent storage andintelligent data caching that can enable rapid storage and retrieval ofentities, concepts, relationships, text documents and related metadata.This can include the text content of messages, the categorizedindividual tokens and semantic token groups comprising those messagesand metadata such as properties, relationships and events. Suchcombination of rich metadata and intelligent indexing can support, amongother benefits and advantages, powerful search and rapid retrievalcapabilities, in addition to advanced analytical functions.

The Knowledge Base 126 can provide storage 128 and indexing 130 forannotated messages, where indexing may be passive and may not requireactive maintenance to support new analytics. An annotated message storecan run locally (e.g., in storage 128) or can be distributed over manysystems. The Knowledge Base 126 may provide for searches (see, e.g.,querying 132) based on message ID, strings, any annotation value orcomposition of annotation values, and/or ranges of positions. TheKnowledge Base 126 may additionally or alternatively contain a KnowledgeGraph representation of the system as described with reference toembodiments disclosed herein, for example embodiments shown in FIGS. 1and 5. The Knowledge Graph may be derived through Global Analytics 112,which may also be referred to as “Advanced Analytics”, and may providefeatures to Global Analytics 112 to enable the creation of the KnowledgeGraph.

System level annotations may be added to every message, such as a valuehashing column that encrypts or disguises the values in the message(allowing analysis to be anonymous), and a second column can cover thevisibility/access rights on data that is either populated by themetadata on the message or by the system, which may serve adereferencing function based on a user's access privileges to the data.Annotated message storage may provide versioning for messages andupdates to messages (overwrites), and may assume immutablerepresentations of messages.

In some embodiments, Global Analytics processes 112 can take featuresfrom annotated message storage and run algorithms against aggregated (orglobal) metadata contained therein to produce, maintain, and enrich aunified representation of knowledge learned from the original data thatmay be stored in a Knowledge Graph. This may include the resolution ofreferences yielding the creation of concepts, categories, andrelationships through clustering, similarity, and ranking algorithms. Ata functional level, Resolve 116 can be considered a reasoner of GlobalAnalytics 112.

Kinds of analytic algorithms that may be used in Global Analytics 112 ata formal level can include clustering (including hierarchical), nearestneighbor, ranking, maximum a posteri (MAP) inference, and expectationmaximization. The clustering, nearest neighbor, and ranking typealgorithms have a family resemblance in that they can calculate relativesimilarity or dissimilarity between different classes or sets of objectsbased on features and then either return a ranked list or a partition ofthe objects into sets with some rationale. MAP and expectationmaximization may share a family resemblance in predicting a bestcandidate or range of candidates given a set of condition of theKnowledge Graph at the time of evaluation.

As will be discussed in further detail below with respect to FIG. 5,Global Analytics 112 in accordance with some embodiments can useResonate 114 to back-propagate from Global Analytics 112 to LocalAnalytics 104. For example, Resonate 114 may identify categorizationerrors from an extractor or named entity resolution (NER) models andback-propagate information to model training 102 to fix the errors.Resonate 114 can read from globally fixed data, generate artificialtraining, and teach to rebuild models, thus acting as a type of agent toperform internal training.

“Associative Net” 120 (which may also be referred to as “associativenetwork” reasoning) in accordance with some embodiments can be based ina distributional similarity hypothesis, positing that words with similarmeaning will be used in similar language constructs and contexts.Adapted to named entities, this can mean that two entities (e.g.,people) that perform similar functions (e.g., occupation) can bereferred to in a similar manner. For instance, it may be expected thatAmerican politicians will often appear in text near American politicalvenues (e.g., “Washington”) or in similar situations (e.g., “stumpspeech”). Associative Net functions according to example embodiments canleverage such an assumption to build, for each word, a compact signaturethat encodes all of the contexts in which it appears. The signatures forany two words can be efficiently compared to give a degree ofsimilarity. Named entities that have a high degree of similarityaccording to Associative Net may often represent aliases for the sameentity or other entities that serve a similar function.

Further aspects of Global Analytics 112 in accordance with someembodiments of the present disclosure can utilize “knowledge objects.”Once it can be determined where (i.e., in what places) an entity hasbeen mentioned, information can be collected about the entity from allof the mention sites. Different pieces of information can be collectedfrom which to construct entity knowledge objects, including birth date,death date, political affiliation, and nationality. These data pointscan be aggregated across all of the mentions for an entity and reportedas attributes of the entity. Thus, it may be observed, for example, thatthe entity named “Barbara Streisand” (having alias “Ms. Streisand”) wasborn in April 1942 as long as a birth date of April 1942 could beidentified for one of the mentions (e.g., “She was born in April 1942”).

According to some embodiments, a distributed map framework that can beused for Local Analytics 104 can be instantiated using, for example,currently available HADOOP Map/Reduce or STORM streaming technology.This can provide for a batch data ingestion process or a streamingingestion process (i.e., documents are fed in as they arrive in realtime). According to some example embodiments, Global Analytics 112processes can be instantiated as HADOOP Map/Reduce jobs, and thisprocess may be executed periodically to incorporate new data being addedto the Knowledge Base 126 in corpus-wide analytics processing. GlobalAnalytics processes 112 can read data generated by Local Analytics 104from the Knowledge Base 126, using a customized API in accordance withthe present disclosure to perform bulk reads of the required data. Aparticularized API task performing the data reads can be instantiated asHADOOP Map/Reduce processes, for example.

Global Analytics 112 can support incremental updates such that, ratherthan having to reprocess an entire data corpus whenever new documentsare added to the Knowledge Base 126, analytics performed on the new datacan be incorporated with the analysis already contained in the KnowledgeBase 126. In some embodiments, systems and/or methods can be deployed toan enterprise in a variety of configurations or can be accessed via acloud service, which can provide for a low cost of entry whilesupporting a comparable level of access to analytics as an installationbehind an enterprise firewall.

Now also referring to the diagram 200 of FIG. 2, according to someembodiments of the present disclosure, a number of ways can be providedfor accessing the data and analysis contained in the Knowledge Base 128.A particularized API layer can enable organizations and developers tointegrate aspects of the present disclosure with third partyapplications (e.g., business intelligence tools, search and discoverytools) or create customized user interfaces that utilize results of theanalysis. These can include a set of knowledge queries via a KnowledgeBase query language in accordance with the present disclosure, modulecommands that can provide access to specific functions performed by somemodules in accordance with the present disclosure, and through IMPALA.

Utilizing IMPALA, users can query data using SQL-like syntax, includingSELECT, JOIN, and aggregate functions—in real time. This can use thesame metadata, SQL syntax, ODBC driver and user interface as APACHE HIVEmaking the transition substantially seamless when moving from APACHEHIVE to IMPALA. A Knowledge Base query language according to someembodiments may be based on the MQL specification published as part ofthe FREEBASE project to serve as a JSON-based (JAVASCRIPT ObjectNotation) query language. For web developers using JAVASCRIPT, JSON istrivially transformed into JAVASCRIPT objects so it can be particularlyconvenient for work in which a browser-based user interface is involved.Because the FREEBASE project's MQL usage is not mapped out as formallanguage, there is no set schema to be designed against.

Standard Knowledge Base query requests according to the presentdisclosure may include operations for standard CRUD (create, read,update, delete) operations. The Knowledge Base query engine can supportcreate and read query types for the most common object types, with somesupport for update queries for specific object types. Because KnowledgeBase query commands can be built on a JSON based query language, it maybe intuitive to use JSON objects to specify the input parameters forthis command form. The input parameters can be placed into a JSONobject, and then passed to the server in the request body. The resultcan be passed back to the client in a JSON object with the same formatas the one passed in the request body.

In accordance with some embodiments, a custom JAVA API in accordancewith the present disclosure (which may also be referred to as “Reaper”)can support high-performance bulk export operations on data tables inthe Knowledge Base to support creation of custom analytics, data views,and data exports. It may be noted that this is not a run-time API from aspecific server. These tables can be accessed from specific backendstorage technology being employed, such as CASSANDRA, HBASE, orACCUMULO. Reaper API can expose core data structures through documentedbusiness objects that conform to standard interfaces. Specifically, aninput formal JAVA class can be provided for each data type supported bythe interface. This input format can tell HADOOP how to break the bulkread operation into separate tasks that utilize the HADOOP Map/Reducedistributed execution environment, allowing the bulk export function toscale to the amount of available hardware in the HADOOP cluster. TheGlobal Analytics processes can also utilize the Reaper API to read thedata from the Knowledge Graph that was generated by Local Analyticsprocesses.

According to some embodiments, in addition to searching for data,certain systems and/or methods can permit a user to get answers toquestions they want to ask. Such functionality can be enabled inaccordance with a high-fidelity knowledge representation predicated on agraph abstraction that can be used by people and machines to understandhuman language in context, which may be referred to as the KnowledgeGraph. FIG. 3 illustrates an example of the type of information agenerated Knowledge Graph representation 300 may contain, and thediagram 400 of FIG. 4 illustrates organization and generation of aKnowledge Graph, in accordance with some embodiments.

In some embodiments, the Knowledge Graph can be built automatically frompublic and private data in near real-time. A graph may be assembled withno prior knowledge of the data and can visually represent resolvedentities in time and space. The entities can appear as nodes in thegraph and contain aggregated knowledge about that entity (e.g.,when/where they were born, when/where they went to school, and/orwhen/where they worked). The Knowledge Graph, according to someembodiments, can provide for understanding entities and facts inrelationships that can enable a user to quickly identify specificopportunities and risks to support crucial decision-making.

As an example implementation of aspects of a Knowledge Graph accordingto some embodiments, if building a compliance use case, the analysismight have uncovered the following facts:

1. Roger Guta is now on the board of directors of Proffett & Gambrel.

2. Raj Mojihan is related to Roger Guta through being a former mentor ofRoger.

3. Raj Mojihan is the founder of Gallot Company.

4. The Gallot Company is selling a large number of Proffett & Gambrelstock.

Other facts can also be made quickly visible, such as the commonconnection to Princetown University between Roger and Raj, or theconnection between Roger, Raj, and William Schultz.

After reviewing these facts, an analyst may then be able to inferinformation based on the Knowledge Graph representations, for example:

-   -   1. Who might have shared information inappropriately or made a        trade based on knowledge they shouldn't have used?    -   2. Does the relationship between Roger and Raj indicate a case        of insider trading?

Now also referring to the diagram 400 of FIG. 4, in accordance with someembodiments of the present disclosure, the Knowledge Graph cangraphically represent the information that has been extracted from acorpus, for example information extracted via one or more functions inaccordance with the Read phase. A Knowledge Graph can be viewed as twoseparate and related sub-graphs: the knowledge sub-graph identifying theentities present in text and the relationships between them; and theinformation sub-graph which identifies the specific pieces ofinformation that act as evidence/support for the knowledge sub-graph.

As illustrated in the example embodiment of FIG. 4, the informationsub-graph can contain message nodes 402, mention nodes 404, assertionnodes 406, and location nodes 408. Each message node can represent asingle document from a corpus and can contain metadata information aboutthe document in addition to its text and any document-level analysisartifacts (e.g., tokenization, part-of-speech assignment, nameidentification) from the Read phase. These analytic outputs can beencoded within a separate graph on the “dafGraph” property of themessage node.

The text of a message can refer to entities and describe various ways inwhich they interact. These entities can be represented in theinformation sub-graph by mention nodes. Each mention node can representa coreference chain (one or more textual references to an entity) from asingle document identified from the local coreference output of Readprocesses.

Location nodes can represent geographic references within the text thatcan be disambiguated and geo-coded to a specific coordinate. Theselocation nodes can be linked to by message nodes and assertion nodes,representing the geographic locations identified in a message and thegeographic locations at which individual interactions took place.Assertion nodes can represent the interactions between entities that areidentified during the Read phase. Within the information sub-graph, theycan be encoded as subject/verb/object triples with time and locationattributes. The verb and time information can be encoded within theproperties of the assertion node and the subject, object and locationcan be identified by edges from the assertion node to mention andlocation nodes (see, e.g., “subject” edge and “object” edge fromassertion node 406 to mention node 404, and “location” edge fromassertion node 406 to location node 408). The location node can identifythe geographic location at which the interaction is thought to haveoccurred.

The knowledge sub-graph can aggregate individual pieces of informationfrom messages into a corpus-global view of the information that isorganized around the entity. Prototype nodes 410, entity nodes 412, andconcept nodes 414 and the relationships between them can capture at ahigh level the individual pieces of information from the informationsub-graph. The prototype nodes can represent an initial high-confidenceclustering of mentions from a small portion of the corpus. A reason forthis level of abstraction can be to address scale within the globalcoreference operation. Prototypes can aggregate mentions so that thereare fewer prototypes to resolve than there are mentions. Prototypes cantypically be constructed in parallel on smaller portions of a corpus.Prototypes can be linked to other prototypes by assertion edges, whichcan abstract the assertion nodes from the information graph. Eachassertion can specify a subject and object mention node, and each ofthese mentions can contribute to a single prototype node. The prototypenodes corresponding to the subject and object mention nodes for anassertion can have an assertion edge between them.

Entity nodes can be considered as fundamental building blocks of theknowledge sub-graph, representing the global aggregation of informationfrom prototype nodes. Each entity can have a link to its contributingprototypes, as well as links to the other entities in which it was beenobserved to interact. The assertion edges to other entities can beinherited from its prototypes. An assertion edge confidence can beaggregated from the confidence of corresponding assertion edges oncontributing prototype nodes. Entities themselves can be clustered intoconcept nodes, representing a high level abstraction of a group ofentities (see, e.g., “super” edge from entity node 412 to concept node414).

As discussed in some detail above, an information sub-graph inaccordance with some embodiments can contain message nodes, mentionnodes, assertion nodes, and location nodes, wherein each message nodecan represent a single document from a corpus and can contain metadatainformation about the document in addition to its text and anydocument-level analysis artifacts from the Read phase. These analyticoutputs can be encoded within a separate graph on the “dafGraph”property of the message node, which relates to a graph, which may relateto a “document graph”, consisting of all nodes and edges that referencea common source document. A “source document” as referred to herein canbe a single instance of text that is subject to analysis, such as asingle file within a file system.

The nodes in a document graph can represent analytic results, features,and properties. Features and properties can be key-value pairs attachedto nodes. Additionally, these nodes may have relationships to othernodes in the graph (see “edges”). For example, a node may represent asingle word of text (or “token”). That node may then have a childrelationship to a node representing the phrase of which the word is apart (a “chunk”). The chunk node may have other children, representingother words in the phrase. Each of these nodes may have additionalproperties, describing the analytic component that generated the node, aconfidence associated with the node, and so on.

In some embodiments, information contained within a generated KnowledgeGraph can help to answer a variety of questions relevant to specific usecases, for instance who said what to whom and/or what events areoccurring when and where. Some embodiments can allow for a search thatmay not be otherwise easily expressed in a pre-specified analyticformat, and some embodiments can provide for a user to browse theKnowledge Graph, looking for a serendipitous connection, a novel fact,or to gain situational awareness related to an entity, for instance.

Some embodiments can provide for easy browsing and searching of conceptsin the Knowledge Graph, by querying knowledge objects and visualizingcaptured information in a clean and intuitive graphical user interface,which may be web-based. In some embodiments, a user can be presentedwith a list of the most active concepts in their database. The user canexpand the time frame and filter results by concept category, so thatthey are presented with, for example, a list of the people who have beenthe most active in the last 30 days.

When a user decides to investigate a given concept, in some embodimentsan entity profile can provided that may list key attributes such asaliases, date of birth and death, places of residence, organizationmemberships, titles, spouses, siblings, and/or children. The profile canalso provide an interactive timeline that shows the number of times theconcept is mentioned on any given date. A newsfeed can be tied to thistimeline, and sentences may be displayed, where the concept appears aspart of a subject-predicate-object triple during the selected period oftime. Additionally, the newsfeed can display how long ago the actiontook place, the name of the document that reported the information, andthe total number of documents that made the same statement. This newscan also be filtered by predicate category, enabling the user to easilyview specific types of interactions, such as communication or travel.

In some embodiments, aspects of the concept profiles can have anassociated relationships tab in a graphical user interface. Thisvisualization can identify other concepts in the Knowledge Base that arerelated with the current concept ordered by strength of relationship.These results can also be filtered by entity category. From therelationships tab, the user can choose to navigate to the concept'sprofile or a profile that documents the relationship between the twoconcepts. This relationship profile may primarily consist of a timelineand newsfeed showing when and how the concepts interacted over time. Theuser is able to interact with the news and timeline in the same fashionas on the single concept profile. Implementing certain aspects of someembodiments of the present disclosure can remove the need for a user towrite their own queries to explore their data, and can provide a cleanpresentation of the most critical data and allow users to easilynavigate the information in their systems, which can empower users tounderstand not just what entities in their Knowledge Bases are doing,but also how each is related to the other, including relationships thatwould have otherwise been nearly impossible for a human to discover ontheir own. Such functionality can empower organizations and individualswith a more complete understanding of their data.

Various aspects of the Read, Resolve, and Reason workflow according tosome embodiments of the present disclosure will now be discussed infurther detail. As described in some detail above, the Read, Resolve,and Reason phases can provide for building and exploring a graph ofglobal enterprise knowledge. Mentions of entities can be identifiedduring the Read phase and combined and organized into a graph ofentities and relationships between them in the Resolve phase. In theReason phase, information inherent in the Knowledge Graph can beextracted and provided as actionable insights for a user.

In some aspects of the Read phase in accordance with some embodiments,as data is read in, text of the data can first be broken up into itsfoundational building blocks using a multi-stage natural languageprocessing (NLP) process. The NLP process can comprise determiningsentence boundaries, then breaking up the text into “tokens.” Each tokencan consist of a word, punctuation mark, or special character. Eachtoken can then be analyzed and assigned a grammatical part of speech(POS) tag (e.g., proper noun, adjective, adverb). The tokens can befurther analyzed to determine if adjacent tokens should be cojoinedtogether if they describe the same concept. For example, if “John” and“Smith” were adjacent to each other, they can be cojoined to form “JohnSmith” as a single concept. Other types of examples can include titlesor company names. This process may be referred to as chunking, whichcreates the elements (or entities) that can be used by downstreamanalytics.

A next step can be to analyze each chunk to determine if it belongs to apredefined category. Examples of categories can include people,organizations, businesses, and vehicles. A library of predefinedcategories may be provided. However, users may create their own customcategories using various training applications as described above.

In some embodiments, upon completion of the NLP process, the text hasbeen broken down into its constituent parts, forming a basic foundationof contextual meaning Using this foundation, other analytic functionscan then be performed, such as identifying and cataloging significantactivities (or assertions) between entities. In a grammatical sense,these can be looked at as subject-predicate-object triples, as theydescribe specific activities that occur between entities (e.g., aperson, place, or thing). These assertions can then be categorized todescribe specific types of activities, such as communications activitiesand/or purchase/acquisition activities.

Other analytics can include identifying and cataloging temporal andspatial references found in the text, including indirect references totime and location. For example, if the date of a document is known, atemporal reference to “next Thursday” can be assigned the correct datebased on the document date.

To illustrate analytics performed by Read processes according to someembodiments, suppose that the following sentence is read in:

-   -   The Proffett & Gambrel Company today announced the appointment        of Rajat Gupta, managing director of Kinsor & Company, to its        board of directors.        From this sentence, the fact (assertion) that an organization        named Proffett & Gambrel appointed Roger Guta to its board of        directors can be identified. The date of the announcement        (assertion) can be noted, as can the fact that Roger Guta was a        manager director of an organization named Kinsor & Company        (assertion). According to some example embodiments of the        present disclosure, Read phase analytics can all be performed on        a per-document basis, such that the analysis performed on the        current document is not dependent on previous documents already        analyzed or on future documents yet to be read.

In some embodiments, a second phase of the Read, Resolve, and Reasonworkflow is the Resolve phase. Analytics performed by Resolve processescan be more global in nature and span all documents processed by theRead phase. In some embodiments, Resolve can be particularly privilegedto make updates, deletions, and bootstrap the full structure of theKnowledge Graph.

Entity resolution can generally refer to a process of determiningwhether two expressions (or “mentions”) in natural language text referto the same entity. Given a collection of mentions of entities extractedfrom a body of text, mentions may be grouped such that two mentionsbelong to the same group (“cluster”) if they refer to the same entity.It may be recognized that an entity is coreferent with and refers to thesame entity or that information associated with the entity is referringto multiple distinct real-world individuals. Entity resolution accordingto some embodiments of the present disclosure can address an existingproblem of identifying the correct entity named by each mention (e.g.,names, pronoun, and noun references).

Global (cross-document) coreference resolution, as disclosed herein, canleverage the local (in-document) coreference capabilities of LocalAnalytics. Within a single document, an entity may be referred to one ormore times in what may be called a “coreference chain” (e.g., “She”,“her”, “Barbara”, “Ms. Streisand”, “famous singer”). The aggregatecontext (nearby words) for these mentions and other pertinentinformation (features) extracted from the text surrounding thosementions can form a signature for the chain. This chain signature canthen be compared against chain signatures from other documents, and whena similar chain (e.g., “Barbara Streisand”, “singer”, “Ms. Streisand”)has been identified, they can be deemed coreferent and collapsed into alarger structure containing the mentions of both. This larger group ofmentions and its signature can then participate further in thecomparison and combination process.

Regarding global entity resolution, across the data, a specific entitymay be referred to in a number of different ways. Returning to aprevious example, Roger Guta may be referred to in many different ways:Roger Guta, Rog Guta, Mr. Guta, Roger Kumir Guta, etc. Although thespecific string value may be different across all of these mentions,they all refer to the same person. When doing analysis related to RogerGuta, not capturing each mention of this person due to differences inhow they are referenced could adversely impact the results. According tosome embodiments, contextual similarity of usage can be utilized, as canproperties associated with an entity and other algorithms, to group allof these references into what can be referred to as a globally resolvedconcept. Without this capability, an analysis of Roger Guta may misssome very important activities related to him, as well as attributeactivities to other people, when in fact they all were related to thesame person.

In some example embodiments, in the Resolve phase, similar concepts canbe identified based on their usage in context (e.g., synonymgeneration). A core premise of this analysis can be that language shouldbe treated as a signal composed of symbols between agents. The encodingof meaning into the signal can be done through consistent selection ofsymbols that have stable histories of interactions (e.g.,co-occurrences) within short attention ranges over a longer globalhistory of usage related to these symbols. The pattern of usage of aparticular entity, taken globally, can form a signature. Entities thathave similar usage patterns or signatures can be related semantically.Algorithms used to perform this analysis can provide a mathematicalformalization and computation for that notion of similarity. Thisanalysis can be useful for identifying both explicit and implicitrelationships between people or other entities. For example, the name ofa world leader can be semantically related to other world leaders. Thus,if searching for concepts similar to Barack Obama, other people such asVladimir Putin, Angela Merkel, and David Cameron may be returned,because they all share the concept of being world leaders.

Continuing an illustration from discussions above, the entity resolutionanalysis according to some embodiments of the present disclosure mayuncover some additional facts about Roger Guta, such as the fact thatthe Roger Guta mentioned in the announcement of the P & G boardappointment is the same Roger Guta who serves on the board of a leadinginvestment bank. The similarity analysis may uncover that Roger Guta'sformer mentor is Raj Mojihan, who also is the founder of Gallot Company.Other additional facts, such as Roger Guta being born in 1956 andgraduating from Princetown University, would also be added to ourunderstanding of the concept of “Roger Guta”.

In some embodiments, a third phase of the Read, Resolve, and Reasonworkflow is Reason. Functions of the Reason phase of analysis canoperate to understand and correlate all of the information discovered inthe prior two phases to include important people, places, events, andrelationships uncovered in the data. According to some embodiments, thiscan be accomplished by amplifying human intelligence through a varietyof algorithms to manipulate the collection of concepts and relationshipsthat ultimately help end users answer questions.

In accordance with some embodiments, reasoning processes (Reason phase)may refer to the use or manipulation of concepts and relationships toanswer end user questions. Reasoning may be primitive (atomic) orcomplex (orchestrated to support a specific business use case). Thefollowing are some examples of types of reasoning (sometimes expressedherein in terms of respective “reasoners”) that can be used to amplifyhuman intelligence, in accordance with some embodiments.

“Connectivity” reasoning can relate to, given a set of features, usingan operator to test for linkages between concepts, relationships, ormessages. “Similarity” reasoning (see, e.g., “Similarity” at block 118of FIG. 1) can relate to, given a set of features, using an operator tocompare concepts, relationships, or messages and generate a rankedorder. A model thereby may relate to having a selection of featureswherein a component of the system performs the weighting of featuresbased on statistics associated with a global graph. A constraint ofSimilarity can be modular such that one kind of similarity algorithm canbe chosen over others that may function together as a kind of compositefunction.

“Temporal and Spatial” reasoning can relate to the assignment of space(locale) and time as a set of ranges used to constrain relationships andresolved entities. “Frequency and Trending” reasoning can relate to,given a set of features, using an operator to generate counts ofconcepts, relationships, or messages that satisfy constraints such asoccurrence over time and (optionally) space.

“Pattern and Anomaly Detection” reasoning can relate to, given a set offeatures, using an operator to test for the existence of, or a changein, the historical state or expectation of a concept, relationship, ormessage and detect and notify a user of matches. For example, Patternand Anomaly Detection reasoning can be used to analyze a past calendarweek to determine what users are starting to interact as a group (in thedata) that have never interacted with each other before. Also, this typeof reasoning can be used to look for new users that are starting tointeract with together. The corresponding data may then be tagged foridentification as an emerging group or emerging idea, thus adding to therepresentation.

“Anomaly” reasoning as used herein can generally be defined as a deltaor deviation in an expectation of certain primitives in the KnowledgeGraph. An Anomaly reasoner can be constantly calculating against acertain set of entities, types of entities, and looking for anydeviation that is above the expectation beyond some constraint. In anexemplary implementation relating to communication between two parties,one party may start communicating with a party outside of a company andpotentially giving away, in an unauthorized sense, privilegedinformation. If the one party is communicating with someone new thatthey previously did not communicate with, this can be considered adeviation, as can two parties discussing subjects that are normally notpart of their ordinary conversations, or where two parties that had along-term relationship in the past suddenly end communication.

“Grouping” reasoning can relate to, given a set of features, using anoperator to partition or separate a collection of concepts,relationships, or messages into sets. Anticipation and “Prediction”reasoning (see, e.g., “Prediction” at block 124 in FIG. 1) can relateto, given a set of features, using an operator to estimate future valuesof concepts, relationships, or messages. “Inference” reasoning (see,e.g., “Inference” at block 122 in FIG. 1) can relate to, given a set offeatures, using an operator to generate new, non-explicit connectionsbetween concepts, relationships, or messages through inductive,deductive, and abductive logic (absolute or probabilistic). “Influence”reasoning can relate to a measurement of an effect of entities orobjects to one another in the Knowledge Graph.

Now referring to FIG. 5, aspects of Resonate according to someembodiments of the present disclosure will be described in furtherdetail. Resonate in accordance with the embodiment shown in FIG. 5 mayperform the functions of Resonate 114 shown in FIG. 1, as well asfurther functions described below. As shown in the diagram 500 of FIG.5, Resonate (generally represented by block 501) in accordance with someembodiments can provide a way of back-propagating learning from GlobalAnalytics 510 to Local Analytics 506. It should be recognized thatGlobal Analytics 510 and Local Analytics 506 as discussed herein cancomprise some or all of the functionality of Global Analytics 112 andLocal Analytics 104 as discussed above with respect to the embodimentshown in FIG. 1. In some embodiments, Resonate can identify an errorresulting from a statistical language model trained using training data502 and cause a model training process 504 to correct the error andproduce corrected, updated training data 520. The error may be an errorthat occurred when predicatively annotating certain text data to have aparticular value or label, for example a categorization error from namedentity recognition models. The annotations may be semantic annotationsto text data, for creating annotated messages by generating, at least inpart by a trained statistical language model, predictive labels thatcorrespond to part-of-speech, syntactic role, sentiment, and/or otherlanguage patterns associated with the text data.

In one embodiment, Resonate can identify the errors at a global level ina Knowledge Graph 508 through Global Analytics reasoners such as Resolve(see, e.g., Resolve 116 at FIG. 1 and corresponding description above).Resonate can update the respective data (e.g., annotation label, value)to be accurate and consistent, record the changes in a change log 118,and then back-propagate the corrected data into training informationused by supervised model training at 504, thereby improving the accuracyof future predictions.

Resonate can read from globally fixed data, generate artificialtraining, and teach to rebuild models. In some embodiments, certainfunctions of Resonate can be implemented through the use of anautonomous trainer agent that performs internal training, which is adifferent modality of training as compared to supervised training by ahuman analyst that annotates and corrects model results. In exampleembodiments, end users can provide input 516 (“user feedback”) tocorrect values and relationships in the Knowledge Graph 508 via a userinterface such as a graphical user interface, to provide for userfeedback-driven correction of the Knowledge Graph 508. These correctionsmay be recorded in the change log 518. If multiple users make changes,then different change logs may be reconciled through an administrativeprocess whereby a user with particular permissions and authorities tomake changes to the Knowledge Graph 508 can determine and select thebest and/or most accurate updates and make them canonical. It should beappreciated that the changes are not limited to being made by humanusers, and may be made using a reasoner or other automated statisticalprocess as described herein with respect to certain embodiments. Havingmade the updates to the Knowledge Graph 508, these changes can berecorded in the change log 518 and back-propagated into new trainingdata 520 for supervised model training processes at 504 and yield moreaccurate prediction from the output of Local Analytics 506.

In some embodiments, well-vetted (high confidence) reference data 514from back end storage 512 can be ingested (e.g., via an ingestionengine, not shown) and treated with similar authority as end userfeedback, by overriding values that were derived from the KnowledgeGraph 508 and replacing those values with appropriate values from thereference data 514, which may be at the discretion of a systemadministrator. The reference data 514 may include customer lists,ontologies, lists of businesses, and/or census information about variouspeople. The updated values from the Knowledge Graph 508 can once againbe back-propagated into updated training data 520 for supervised modeltraining processes at 504 and yield more accurate prediction from theoutput of Local Analytics 506.

In some embodiments, with every update from any one of the above initialsources, improvements in Local Analytics models can result. These LocalAnalytics models correspond to models created using the updated trainingdata 520, whereas the previous state of the models prior to thealteration and/or improvements to the training data would be a modelcreated using prior training data 502. A new model created using theupdated training data 520 can yield higher quality features andannotations on individual messages that are utilized by other GlobalAnalytics reasoners to thereby improve the quality of their outputs,which include aggregates and sets of concepts, relationships, and otherkey objects in the Knowledge Graph 508. These improvements mean that theoutcomes of Global Analytics functions such as resolution functionsperformed by Resolve reasoners (see, e.g., Resolve 116 in FIG. 1 andcorresponding description above) will improve and therefore yieldadditional corrections for training information.

Therefore, the implementation of Resonate functionality in accordancewith some embodiments can provide for an ongoing loop that continuallyimproves the quality of the Knowledge Graph. As such, it effectivelyallows for a virtuous circle of improving data. This ongoing loop ofResonate can be performed indefinitely, for a certain predefined numberof iterations, or until a certain predefined level of accuracy inannotations or other metrics is reached or exceeded, for example athreshold level of accuracy and/or based on a predetermined amount oferror tolerance.

Certain user-defined reasoners, in accordance with some embodiments, canperform functions such as social network identity resolution to outsidestructured data (consumer data) and/or recommend in news stories basedon interests of a user. User-defined reasoners may also includereasoners for determining user influence on particular issues, bymapping probability of an assertion to propagate in the Knowledge Graphfrom a target network, based on a profile of the user andcharacterization of the assertion. User-defined reasoners may alsorelate to changes in user opinion over time, and assertion factorizationof user opinion, which is associated with messages/assertions that maytrace/drive current makeup of popular assertions. Additionally,user-defined reasoners may also relate to user-profilecompletion/inferencing. As an illustrative example: “I know X, Y aboutperson A. I know they are most like persons B & C who have property asTrue . . . with what confidence can I assume property Z is true of A”.User-defined reasoners can also identify emerging influencers (change ininfluence over time), relating to people, issues, andmessages/assertions. In some embodiments, one or more reasonersdescribed above that apply to social media data plus linked textualcontent may be used. A Knowledge Graph of properties and beliefs can becreated from analyzing streams of conversation and metadata andprojecting it over geography and over time.

Various types of reasoners can be system-level reasoners residing inResolve, which can be system privileged. Types of reasoners may alsorelate to a taxonomy of categories that can be able to analyze“activities”, for example world leaders that have “meetings”. As anexample illustration, inanimate objects like chairs or televisions donot have meetings, but generally all people have meetings; some worldleaders occupy an “office” in the government and others such ascorporate executives do not. Some types of reasoners may also relate toontology of relationship clusters between induced categories.

Each of the above-described Reasoning capabilities can be used inensemble to enable complex reasoning capabilities such as social networkanalysis and sentiment analysis. As an example, for social networkanalysis, an application may use Connectivity, Grouping, and Frequencyand Trending reasoning to show high level patterns and affinities amongindividuals and groups. As another example, for sentiment analysis,Connectivity and Grouping reasoning that leverage categorized modifiersas features can yield positive or negative sentiment detection andscoring about various concepts in the system.

As the Knowledge Graph becomes progressively richer, earlier performeddecisions, for example as performed in the Read phase, may be overriddenby a reasoner. Whereas processes in the Read phase may be limited to onedocument at a time, what knowledge was in the one document, and whatknowledge was in the model it was trained from, a reasoner, on the otherhand, may have knowledge of all the global data and can make correctionsto errors. For example, reasoners may have access to knowledge tocorrect an earlier mistake wherein three instances of the same personled to the entity being identified as an organization rather than aperson. Accordingly, reasoners can have the privilege and ability tooverride the mistake.

Aspects of Resonance according to some embodiments of the presentdisclosure can include streaming concept resolution. In streamingconcept resolution, when a state of a model has been built, with aninitial state through global co-reference/global concept resolution,streaming resolution is enabled such that, as data is coming in, fastdiscrimination decisions may be performed as to where a given entityshould be placed. Using stored conditional random field models, decodingis performed, which includes making a best judgment, like a maximum aposteri probability judgment of what class a given stream belongs in,such as a person or location. When a decision is made on the type ofentity in the Read phase, a feature vector can be created around thatparticular set of tokens to make that decision. Outputs from thestreaming concept resolution, from a sort of per-message stage with eachentity, can put those into the right initial configuration after aninitial configuration has been set up. As such, a signature of an entitycan be best matched to previously resolved entities as the data comesin. The system may run in a batch mode in the background. An exampleimplementation can monitor a news feed in another country in real-timeas pivotal events unfold.

FIG. 6 is a flow diagram illustrating operations of a method 600 forperforming functions of Resonate reasoning in accordance with oneembodiment of the present disclosure. At operation 602 of the method600, text data is read which corresponds to one or more messages. Next,at operation 604, semantic annotations to the text data are created togenerate one or more annotated messages. At operation 606, the annotatedmessages are aggregated and information associated with the aggregatedmessages is stored in a message store. At operation 608, one or moreannotation errors are identified in the semantic annotations, and atoperation 610, the respective semantic annotations are updated tocorrect the annotation errors. At operation 612, corrected datacorresponding to the updated semantic annotations are back-propagatedinto training data for further language model training.

FIG. 7 is a flow diagram illustrating operations of a method 700 forperforming functions of Resonate reasoning in accordance with oneembodiment of the present disclosure. At operation 702 of the method700, text data is read that corresponds to one or more messages. Thetext data can include natural language content and/or metadata. Atoperation 704, one or more semantic annotations to the text data arecreated to generate one or more annotated messages. Creating thesemantic annotations can include generating, at least in part by atrained statistical language model, one or more predictive labelscorresponding to language patterns associated with the text data. Thelanguage patterns can include part-of-speech, syntactic role, and/orsentiment associated with the text data. At operation 706, the annotatedmessages are aggregated and information associated with the aggregatedmessages is stored in a message store. The message store can beconfigured to provide for data insertion and/or data querying forentities, concepts, relationships, and/or metadata associated with themessages.

At operation 708, a knowledge graph representation of the aggregatedmessages is constructed. At operation 710, one or more semanticannotation errors are identified, and at operation 712, the one or morerespective semantic annotations with the annotation errors are updatedto correct the errors. Identifying the errors and updating therespective annotations (operations 710 and 712) can include identifyingthe annotation errors from the knowledge graph representation andupdating the respective annotations in the knowledge graphrepresentation. Identifying the annotation errors from the knowledgegraph representation and updating the respective annotations canadditionally or alternatively include receiving an annotation correctionfrom one or more users via a user interface.

Identifying the annotation errors (operation 710) can includeidentifying a categorization error from a named entity recognition (NER)model. Updating the respective annotations (operation 710) can includeoverriding values derived from the knowledge graph representation basedat least in part on values from predetermined information in structuredreference data. At operation 714, the update to the annotations isrecorded in a change log, and operation 716, corrected datacorresponding to the corrected annotations is back-propagated intotraining data for further training of the statistical language model.Updating the respective annotations (operation 712) and/orback-propagating the corrected data (operation 716) can be performed byan autonomous trainer agent. The process of identifying, updating,recording, and back-propagating can be performed repeatedly until apredetermined level of accuracy of the annotations has been reachedand/or a predetermined number of iterations have been performed.

FIG. 8 is a diagram illustrating architecture of an exemplary system 800for machine learning in which one or more example embodiments describedherein may be implemented. As shown, the system 800 includes a usercomputer 804 operated by a user 802. The user computer 804 can includesome or all of the components of the computer 900 shown in FIG. 9 and,described in further detail below. By interacting with a user interface(e.g., graphical user interface) of the user computer 804, the user 802may perform, via a model training client 806, functions associated withmodel creation and/or model training according to some embodimentsdescribed herein.

Generated models such as enhanced models 816 may be provided to otherapplications or components (collectively represented by referencenumeral 820) for performing various natural language processing (NLP)functions at other locations in a larger system and/or using resourcesprovided across multiple devices of a distributed computing system. Auser interface executing on the computer 804 (e.g., graphical userinterface) may be configured to receive user input 805 related to, forexample, text annotation functions associated with some embodimentsdescribed herein.

The improved annotation 810, training 814, prediction 818, and predicteddata 808 operations may be managed via the model training client 806.Training 814, prediction 818, and storage of enhanced models 816 can beimplemented on another computer 812, which may be locally or remotelycoupled to and in communication with user computer 804, via acommunication link such as a wired or wireless network connection. Thecomputer 812 may include some or all of the components of the computer900 shown in FIG. 9. A base model may be improved by closing thefeedback loop, where the data may include tokenization, part-of-speech(POS) tagging, chunking, and/or name entity recognition (“NER”)annotation, for example.

In some embodiments, a base model may be used to predict annotations toa first segment of text. Users such as data analysts or linguists maythen correct the annotation predictions. The resulting corrected datamay then be used to train a new model based on just the corrections madeto the predictions on the first segment of text. This new model may thenbe used to predict annotations on a second segment of text. Thecorrections made to predictions on the second segment of text may thenbe used to create a new model and predict annotations on a third segmentof text, and so on accordingly. This prediction, annotation, andtraining process may progressively improve a model as additionalsegments of text are processed.

FIG. 9 is a computer architecture diagram showing a general computingsystem capable of implementing one or more embodiments of the presentdisclosure described herein. A computer 900 may be configured to performone or more functions associated with embodiments illustrated in one ormore of FIGS. 1-8. It should be appreciated that the computer 900 may beimplemented within a single computing device or a computing systemformed with multiple connected computing devices. For example, thecomputer 900 may be configured for a server computer, desktop computer,laptop computer, or mobile computing device such as a smartphone ortablet computer, or the computer 900 may be configured to performvarious distributed computing tasks, which may distribute processingand/or storage resources among the multiple devices.

As shown, the computer 900 includes a processing unit 902, a systemmemory 904, and a system bus 906 that couples the memory 904 to theprocessing unit 902. The computer 900 further includes a mass storagedevice 912 for storing program modules. The program modules 914 mayinclude modules executable to perform one or more functions associatedwith embodiments illustrated in one or more of FIGS. 1-8. For example,the program modules 914 may be executable to perform functions for LocalAnalytics reasoning, Global Analytics reasoning, model training, and/orconstruction and maintenance of a Knowledge Graph as described abovewith reference to the embodiments shown in FIGS. 1 and 5. The massstorage device 912 further includes a data store 916, which may beconfigured to function as, for example, the Knowledge Base and/ormessage store described above with respect to the embodiments shown inFIGS. 1 and 5.

The mass storage device 912 is connected to the processing unit 902through a mass storage controller (not shown) connected to the bus 906.The mass storage device 912 and its associated computer storage mediaprovide non-volatile storage for the computer 900. By way of example,and not limitation, computer-readable storage media (also referred toherein as “computer-readable storage medium”) may include volatile andnon-volatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computer-storageinstructions, data structures, program modules, or other data. Forexample, computer-readable storage media includes, but is not limitedto, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memorytechnology, CD-ROM, digital versatile disks (“DVD”), HD-DVD, BLU-RAY, orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bythe computer 900. Computer-readable storage media as described hereindoes not include transitory signals.

According to various embodiments, the computer 900 may operate in anetworked environment using connections to other local or remotecomputers through a network 918 via a network interface unit 910connected to the bus 906. The network interface unit 910 may facilitateconnection of the computing device inputs and outputs to one or moresuitable networks and/or connections such as a local area network (LAN),a wide area network (WAN), the Internet, a cellular network, a radiofrequency network, a Bluetooth-enabled network, a Wi-Fi enabled network,a satellite-based network, or other wired and/or wireless networks forcommunication with external devices and/or systems. The computer 900 mayalso include an input/output controller 908 for receiving and processinginput from a number of input devices. Input devices may include, but arenot limited to, keyboards, mice, stylus, touchscreens, microphones,audio capturing devices, or image/video capturing devices. An end usermay utilize such input devices to interact with a user interface, forexample a graphical user interface, for managing various functionsperformed by the computer 900.

The bus 906 may enable the processing unit 902 to read code and/or datato/from the mass storage device 912 or other computer-storage media. Thecomputer-storage media may represent apparatus in the form of storageelements that are implemented using any suitable technology, includingbut not limited to semiconductors, magnetic materials, optics, or thelike. The program modules 914 may include software instructions that,when loaded into the processing unit 902 and executed, cause thecomputer 900 to provide functions associated with embodimentsillustrated in FIGS. 1-8. The program modules 914 may also providevarious tools or techniques by which the computer 900 may participatewithin the overall systems or operating environments using thecomponents, flows, and data structures discussed throughout thisdescription. In general, the program module 914 may, when loaded intothe processing unit 902 and executed, transform the processing unit 902and the overall computer 900 from a general-purpose computing systeminto a special-purpose computing system.

The processing unit 902 may be constructed from any number oftransistors or other discrete circuit elements, which may individuallyor collectively assume any number of states. More specifically, theprocessing unit 902 may operate as a finite-state machine, in responseto executable instructions contained within the program modules 914.These computer-executable instructions may transform the processing unit902 by specifying how the processing unit 902 transitions betweenstates, thereby transforming the transistors or other discrete hardwareelements constituting the processing unit 902. Encoding the programmodules 914 may also transform the physical structure of thecomputer-readable storage media. The specific transformation of physicalstructure may depend on various factors, in different implementations ofthis description. Examples of such factors may include, but are notlimited to: the technology used to implement the computer-readablestorage media, whether the computer-readable storage media arecharacterized as primary or secondary storage, and the like. Forexample, if the computer-readable storage media are implemented assemiconductor-based memory, the program modules 914 may transform thephysical state of the semiconductor memory, when the software is encodedtherein. For example, the program modules 914 may transform the state oftransistors, capacitors, or other discrete circuit elements constitutingthe semiconductor memory.

As another example, the computer-storage media may be implemented usingmagnetic or optical technology. In such implementations, the programmodules 914 may transform the physical state of magnetic or opticalmedia, when the software is encoded therein. These transformations mayinclude altering the magnetic characteristics of particular locationswithin given magnetic media. These transformations may also includealtering the physical features or characteristics of particularlocations within given optical media, to change the opticalcharacteristics of those locations. Other transformations of physicalmedia are possible without departing from the scope of the presentdisclosure.

Although some embodiments described herein have been described inlanguage specific to computer structural features, methodological actsand by computer readable media, it is to be understood that thedisclosure defined in the appended claims is not necessarily limited tothe specific structures, acts or media described. Therefore, thespecific structural features, acts and mediums are disclosed asexemplary embodiments implementing the claimed disclosure.

It is to be understood that the mention of one or more steps of a methoddoes not preclude the presence of additional method steps or interveningmethod steps between those steps expressly identified. Steps of a methodmay be performed in a different order than those described herein.Similarly, it is also to be understood that the mention of one or morecomponents in a device or system does not preclude the presence ofadditional components or intervening components between those componentsexpressly identified.

The various embodiments described above are provided by way ofillustration only and should not be construed to limit the scope of thepresent disclosure. Those skilled in the art will readily recognizevarious modifications and changes that may be made without following theexample embodiments and applications illustrated and described hereinand without departing from the true spirit and scope of the disclosureas set forth in the appended claims.

What is claimed is:
 1. A computer-implemented method, comprising:reading text data corresponding to one or more messages, wherein thetext data comprises natural language content; creating one or moresemantic annotations to the text data to generate one or more annotatedmessages, wherein creating the one or more semantic annotationscomprises generating, at least in part by a trained statistical languagemodel, one or more predictive labels as annotations corresponding tolanguage patterns associated with the text data, and wherein thelanguage patterns comprise at least one of part-of-speech, syntacticrole, and sentiment associated with the text data; aggregating the oneor more annotated messages and storing information associated with theaggregated one or more annotated messages in a message store; andperforming, based on information from the message store and associatedwith the one or more messages, global analytics functions that include:identifying an annotation error in the created semantic annotations,updating the respective semantic annotation to correct the annotationerror, and back-propagating the updated semantic annotation intotraining data for further language model training; wherein aggregatingthe one or more annotated messages and storing the informationassociated with the aggregated one or more annotated messages comprisesconstructing a global knowledge graph representation corresponding tothe aggregated one or more annotated messages, and wherein identifyingthe annotation error, updating the respective semantic annotation, andback-propagating the updated semantic annotation comprises: (a)identifying the annotation error in the created one or more semanticannotations, (b) updating the respective semantic annotation in theknowledge graph representation to correct the annotation error, (c)back-propagating the updated semantic annotation into the training datafor the further language model training, and (d) performing steps(a)-(c) repeatedly until a predetermined level of accuracy of theannotations has been reached or a predetermined number of iterationshave been performed.
 2. The method of claim 1, wherein identifying theannotation error from the knowledge graph representation and updatingthe respective annotation comprises receiving an annotation correctionfrom at least one user via a user interface.
 3. The method of claim 1,wherein updating the respective annotation comprises overriding valuesderived from the knowledge graph representation, and wherein theoverriding of the values is performed at least in part based on valuesfrom predetermined information in structured reference data.
 4. Themethod of claim 1, further comprising: recording the update to therespective annotation in a change log prior to back-propagating thecorrected data.
 5. The method of claim 1, wherein at least one ofupdating the respective semantic annotation and back-propagating thecorrected data is performed by an autonomous trainer agent.
 6. Themethod of claim 1, wherein the message store is configured to providefor at least one of data insertion and data querying for at least one ofentities, concepts, relationships, and metadata associated with the oneor more messages.
 7. The method of claim 1, wherein identifying theannotation error comprises identifying a categorization error from anamed entity recognition (NER) model.
 8. A system, comprising: one ormore processors; a memory device coupled to the one or more processorsand storing instructions which, when executed by the one or moreprocessors, cause the system to perform functions that include: readingtext data corresponding to one or more messages; creating one or moresemantic annotations to the text data to generate one or more annotatedmessages, wherein creating the one or more semantic annotationscomprises generating, at least in part by a trained statistical languagemodel, one or more predictive labels as annotations corresponding tolanguage patterns associated with the text data; aggregating the one ormore annotated messages and storing information associated with theaggregated one or more annotated messages in a message store; andperforming, based on information from the message store and associatedwith the one or more messages, global analytics functions that include:identifying an annotation error in the created semantic annotations,updating the respective semantic annotation to correct the annotationerror, and back-propagating the updated semantic annotation intotraining data for further language model training, wherein aggregatingthe one or more annotated messages and storing the informationassociated with the aggregated one or more annotated messages comprisesconstructing a global knowledge graph representation corresponding tothe aggregated one or more annotated messages, and wherein identifyingthe annotation error, updating the respective semantic annotation, andback-propagating the updated semantic annotation comprises: (a)identifying the annotation error from the knowledge graphrepresentation, (b) updating the respective semantic annotation in theknowledge graph representation to correct the annotation error, (c)back-propagating the updated semantic annotation into the training datafor the further language model training, and (d) performing steps(a)-(c) repeatedly until a predetermined level of accuracy of theannotations has been reached or a predetermined number of iterationshave been performed.
 9. The system of claim 8, wherein identifying theannotation error from the knowledge graph representation and updatingthe respective annotation comprises receiving an annotation correctionfrom at least one user via a user interface.
 10. The system of claim 8,wherein updating the respective annotation comprises overriding valuesderived from the knowledge graph representation.
 11. The system of claim10, wherein the overriding of the values is performed at least in partbased on values from predetermined information in structured referencedata.
 12. The system of claim 8, wherein the stored instructions, whenexecuted by the one or more processors, further cause the system torecord the update to the respective annotation in a change log prior toback-propagating the corrected data.
 13. The system of claim 8, whereinat least one of updating the respective semantic annotation andback-propagating the corrected data is performed by an autonomoustrainer agent.
 14. The system of claim 8, wherein the message store isconfigured to provide for at least one of data insertion and dataquerying for at least one of entities, concepts, relationships, andmetadata associated with the one or more messages.
 15. The system ofclaim 8, wherein identifying the annotation error comprises identifyinga categorization error from a named entity recognition (NER) model. 16.The system of claim 8, wherein the text data corresponding to one ormore messages comprises at least one of natural language content andmetadata.
 17. The system of claim 8, wherein the language patternscomprise at least one of part-of-speech, syntactic role, and sentimentassociated with the text data.
 18. A non-transitory computer-readablemedium storing instructions which, when executed by one or moreprocessors, cause a computer to perform functions that include: readingtext data corresponding to one or more messages, wherein the text datacomprises at least one of natural language content and metadata;creating one or more semantic annotations to the text data to generateone or more annotated messages, wherein creating the one or moresemantic annotations comprises generating, at least in part by a trainedstatistical language model, one or more predictive labels as annotationscorresponding to language patterns associated with the text data, andwherein the language patterns comprise at least one of part-of-speech,syntactic role, and sentiment associated with the text data; aggregatingthe one or more annotated messages and storing information associatedwith the aggregated one or more annotated messages in a message store;and performing, based on information from the message store andassociated with the one or more messages, global analytics functionsthat include: identifying an annotation error in the created semanticannotations, updating the respective semantic annotation to correct theannotation error, and back-propagating the updated semantic annotationinto training data for further language model training; whereinaggregating the one or more annotated messages and storing theinformation associated with the aggregated one or more annotatedmessages comprises constructing a global knowledge graph representationcorresponding to the aggregated one or more annotated messages, andwherein identifying the annotation error, updating the respectivesemantic annotation to correct the annotation error, andback-propagating the updated semantic annotation comprises: (a)identifying the annotation error from the knowledge graphrepresentation, (b) updating the respective semantic annotation in theknowledge graph representation to correct the annotation error, (c)back-propagating the updated semantic annotation into the training datafor the further language model training, and (d) performing steps(a)-(c) repeatedly until a predetermined level of accuracy of theannotations has been reached or a predetermined number of iterationshave been performed.
 19. The computer-readable medium of claim 18,wherein identifying the annotation error from the knowledge graphrepresentation and updating the respective annotation comprisesreceiving an annotation correction from at least one user via a userinterface.
 20. The computer-readable medium of claim 18, whereinupdating the respective annotation comprises overriding values derivedfrom the knowledge graph representation, and wherein the overriding ofthe values is performed at least in part based on values frompredetermined information in structured reference data.
 21. Thecomputer-readable medium of claim 18, wherein the stored instructions,when executed by the one or more processors, further cause the computerto record the update to the respective annotation in a change log priorto back-propagating the corrected data.
 22. The computer-readable mediumof claim 18, wherein the message store is configured to provide for atleast one of data insertion and data querying for at least one ofentities, concepts, relationships, and metadata associated with the oneor more messages.
 23. The computer-readable medium of claim 18, whereinidentifying the annotation error comprises identifying a categorizationerror from a named entity recognition (NER) model.